python_sources = [
  '__init__.py',
  '_afm.py',
  '_animation_data.py',
  '_blocking_input.py',
  '_cm.py',
  '_cm_bivar.py',
  '_cm_listed.py',
  '_cm_multivar.py',
  '_color_data.py',
  '_constrained_layout.py',
  '_docstring.py',
  '_enums.py',
  '_fontconfig_pattern.py',
  '_internal_utils.py',
  '_layoutgrid.py',
  '_mathtext.py',
  '_mathtext_data.py',
  '_pylab_helpers.py',
  '_text_helpers.py',
  '_tight_bbox.py',
  '_tight_layout.py',
  '_type1font.py',
  'animation.py',
  'artist.py',
  'axis.py',
  'backend_bases.py',
  'backend_managers.py',
  'backend_tools.py',
  'bezier.py',
  'category.py',
  'cbook.py',
  'cm.py',
  'collections.py',
  'colorbar.py',
  'colors.py',
  'container.py',
  'contour.py',
  'dates.py',
  'dviread.py',
  'figure.py',
  'font_manager.py',
  'gridspec.py',
  'hatch.py',
  'image.py',
  'inset.py',
  'layout_engine.py',
  'legend_handler.py',
  'legend.py',
  'lines.py',
  'markers.py',
  'mathtext.py',
  'mlab.py',
  'offsetbox.py',
  'patches.py',
  'patheffects.py',
  'path.py',
  'pylab.py',
  'pyplot.py',
  'quiver.py',
  'rcsetup.py',
  'sankey.py',
  'scale.py',
  'spines.py',
  'stackplot.py',
  'streamplot.py',
  'table.py',
  'texmanager.py',
  'textpath.py',
  'text.py',
  'ticker.py',
  'transforms.py',
  'typing.py',
  'units.py',
  'widgets.py',
]

typing_sources = [
  'py.typed',
  # Compiled extension types.
  '_c_internal_utils.pyi',
  'ft2font.pyi',
  '_image.pyi',
  '_qhull.pyi',
  '_tri.pyi',
  # Pure Python types.
  '__init__.pyi',
  '_color_data.pyi',
  '_docstring.pyi',
  '_enums.pyi',
  '_path.pyi',
  '_pylab_helpers.pyi',
  '_ttconv.pyi',
  'animation.pyi',
  'artist.pyi',
  'axis.pyi',
  'backend_bases.pyi',
  'backend_managers.pyi',
  'backend_tools.pyi',
  'bezier.pyi',
  'cbook.pyi',
  'cm.pyi',
  'collections.pyi',
  'colorbar.pyi',
  'colors.pyi',
  'container.pyi',
  'contour.pyi',
  'dviread.pyi',
  'figure.pyi',
  'font_manager.pyi',
  'gridspec.pyi',
  'hatch.pyi',
  'image.pyi',
  'inset.pyi',
  'layout_engine.pyi',
  'legend_handler.pyi',
  'legend.pyi',
  'lines.pyi',
  'markers.pyi',
  'mathtext.pyi',
  'mlab.pyi',
  'offsetbox.pyi',
  'patches.pyi',
  'patheffects.pyi',
  'path.pyi',
  'quiver.pyi',
  'rcsetup.pyi',
  'sankey.pyi',
  'scale.pyi',
  'spines.pyi',
  'stackplot.pyi',
  'streamplot.pyi',
  'table.pyi',
  'texmanager.pyi',
  'textpath.pyi',
  'text.pyi',
  'ticker.pyi',
  'transforms.pyi',
  'widgets.pyi',
]

py3.install_sources(python_sources, typing_sources,
                    subdir: 'matplotlib')

fs = import('fs')
if fs.exists('_version.py')
    py3.install_sources('_version.py', subdir: 'matplotlib')
else
  cfg = configuration_data()
  cfg.set_quoted('VCS_TAG', meson.project_version())
  configure_file(
    input: '_version.py.in', output: '_version.py',
    configuration: cfg,
    install: true,
    install_tag: 'python-runtime',
    install_dir: py3.get_install_dir() / 'matplotlib')
endif

subdir('_api')
subdir('axes')
subdir('backends')
subdir('mpl-data')
subdir('projections')
subdir('sphinxext')
subdir('style')
subdir('testing')
subdir('tests')
subdir('tri')
